using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Entidades;
using Datos;

namespace Datos
{
  public class AlquilerD
  {
    DBAccess dba;

    #region CONSTRUCTOR
      public AlquilerD()
      {
	      this.dba = new DBAccess();
      }
    #endregion

    private void CargarParametros(AlquilerE alquilerE)
    {
	    dba.Parametros.Clear();
	    alquilerE.PrepararAlquiler();
	          
      this.dba.Parametros.Add("@idAlquiler", alquilerE.IdAlquiler);
      this.dba.Parametros.Add("@idPelicula", alquilerE.IdPelicula);
      this.dba.Parametros.Add("@idSocio", alquilerE.IdSocio);	
      this.dba.Parametros.Add("@fechaAlquiler", alquilerE.FechaAlquiler);
      this.dba.Parametros.Add("@fechaDevolucion", alquilerE.FechaDevolucion);
      this.dba.Parametros.Add("@alquilada", alquilerE.Alquilada);

      this.dba.Parametros.Add("@socioNombre", alquilerE.SocioNombre);
      this.dba.Parametros.Add("@socioApellido", alquilerE.SocioApellido);
      this.dba.Parametros.Add("@socioCalle", alquilerE.SocioCalle);
      this.dba.Parametros.Add("@socioNumero", alquilerE.SocioNumero);
      this.dba.Parametros.Add("@socioPiso", alquilerE.SocioPiso);
      this.dba.Parametros.Add("@socioDepartamento", alquilerE.SocioDepartamento);
      this.dba.Parametros.Add("@socioTelefonoParticular", alquilerE.SocioTelefonoParticular);
      this.dba.Parametros.Add("@socioTelefonoCelular", alquilerE.SocioTelefonoCelular);
      this.dba.Parametros.Add("@socioMail", alquilerE.SocioMail);
      this.dba.Parametros.Add("@socioNextel", alquilerE.SocioNextel);
      this.dba.Parametros.Add("@socioEliminado", alquilerE.SocioEliminado);

      this.dba.Parametros.Add("@peliculaTituloOriginal", alquilerE.PeliculaTituloOriginal);
      this.dba.Parametros.Add("@peliculaTituloTraducido", alquilerE.PeliculaTituloTraducido);
      this.dba.Parametros.Add("@peliculaEliminado", alquilerE.PeliculaEliminada);
      this.dba.Parametros.Add("@generoDescripcion", alquilerE.PeliculaGeneroDescripcion);
      this.dba.Parametros.Add("@origenDescripcion", alquilerE.PeliculaOrigenDescripcion); 
    }

    #region CONSULTAR
    public DataTable AlquilerConsultar(AlquilerE alquilerE)
    {
      alquilerE.PrepararAlquiler();
      CargarParametros(alquilerE);
      return dba.ExecuteDataTable("AlquilerConsultar");
    }
    
    public DataTable AlquilerConsultar()
    {
      AlquilerE alquilerE = new AlquilerE();
      alquilerE.Clear();
      return this.AlquilerConsultar(alquilerE);
    }
    #endregion

    #region INSERTAR
    public void AlquilerInsertar(AlquilerE alquilerE)
    {
      CargarParametros(alquilerE);
      dba.ExecuteNonQuery("AlquilerInsertar");
    }
    #endregion

    #region MODIFICAR
    public void AlquilerModificar(AlquilerE alquilerE)
    {
      CargarParametros(alquilerE);
      dba.ExecuteNonQuery("AlquilerModificar");
    }
    #endregion

    #region ELIMINAR
    public void AlquilerEliminar(AlquilerE alquilerE)
    {
      CargarParametros(alquilerE);
      dba.ExecuteNonQuery("AlquilerEliminar");
    }
    #endregion  
  }
}
